The present invention relates to a system and method for programming electronic computers and in particular to a programming method that captures a program in natural language to improve the accessibility of sophisticated computational tools to occasional users.
Computers have provided data scientists with a wide array of tools and processes, for example, for the analysis of data particularly as captured in large databases. Making effective use of these tools, however, can be difficult, typically requiring that the domain specialist (having knowledge of the data) work with a data scientist (having knowledge of the computerized tools) to apply the tools to a particular analysis problem. This division of the task among two individuals generally increases the time and cost of using otherwise powerful computerized tools, creates a risk of misinterpretation and translation errors in the communication between the individuals, and makes experimentation and iteration of the type often required in data analysis cumbersome.
The problem of making sophisticated computerized tools more accessible is addressed in part by the creation of special high-level languages that invoke these computerized tools, these special, high-level languages intended to be easy to use by domain specialists by providing interfaces (such as graphical interfaces or the like) that help construct programs to use the computerized tools, or by attempting to partially or fully automate the programming process.
A fundamental problem with simplified programming languages is the relatively low tolerance occasional users have for learning specialized programming languages which necessarily mirror the complexity of the tools that they invoke. To the extent that such specialized programming languages are well adapted for a particular problem, for example, automating steps to reduce the complexity of the problem, such languages may lose flexibility by being over-adapted to a narrow set of problems, thereby being unsuitable to the domain specialist having a variety of data analysis problems.